﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Sige
{
    public partial class BajaPersonas : Form
    {
        DataTable codtipodoc = new DataTable();
        DataTable persona = new DataTable();
        Tipos_documento tipodoc = new Tipos_documento();
        Persona person = new Persona();
        Funciones_Varias fv = new Funciones_Varias();

        public BajaPersonas()
        {
            InitializeComponent();
        }

        private void BajaPersonas_Load(object sender, EventArgs e)
        {
            codtipodoc = tipodoc.ObtenerTablaTiposDoc();
            fv.Carga_Combos(ref cboCodTipoDocumento, codtipodoc, "tipodocumento", "descripcion");
            btnEliminar.Enabled = false;
        }

        private void cboCodTipoDocumento_Leave(object sender, EventArgs e)
        {
            Tipos_documento tipodoc = new Tipos_documento();
            if (cboCodTipoDocumento.Text != "")
                txtMostrarTipoDocum.Text = tipodoc.ObtenerDescripcion(cboCodTipoDocumento.Text);
            else
            {
                MessageBox.Show("Debe ingresar un código de documento", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                cboCodTipoDocumento.Focus();
            }
        }

        private void txtNroDocumento_Leave(object sender, EventArgs e)
        {
            string numdoc = txtNroDocumento.Text;
            if (numdoc != "")
            {
                fv.Sacar_Ceros_Izquierda(ref numdoc);
            }
            if (person.Persona_Existente(cboCodTipoDocumento.Text, numdoc) == false)
            {
                MessageBox.Show("La persona no existe", "Error al mostrar Persona", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtNroDocumento.Clear();
                txtNroDocumento.Focus();
            }
            else
            {
                persona.Clear();
                person.ObtenerTablaPersonaPorDocumento(ref persona, cboCodTipoDocumento.Text, numdoc);
                grdPersona.DataSource = persona;
                btnEliminar.Enabled = true;
                cboCodTipoDocumento.Enabled = false;
                txtNroDocumento.Enabled = false;
            }
        }

        private void btnNuevaConsulta_Click(object sender, EventArgs e)
        {
            btnEliminar.Enabled = false;
            txtNroDocumento.Text = "";
            persona.Clear();
            grdPersona.DataSource = null;
            cboCodTipoDocumento.Enabled = true;
            txtNroDocumento.Enabled = true;
        }

        private void btnCerrar_Click(object sender, EventArgs e)
        {
            ActiveForm.Close();
        }

        private void btnEliminar_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("¿Desea eliminar este registro definitivamente?", "Confirmación de eliminación", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                person.ObtenerPersonaDesdeDatatable(ref person, persona);
                if (person.Eliminar() == true)
                {
                    if (MessageBox.Show("El registro ha sido eliminado con éxito. ¿Desea eliminar otro registro?", "El registro se eliminó", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
                    {
                        btnEliminar.Enabled = false;
                        txtNroDocumento.Text = "";
                        persona.Clear();
                        grdPersona.DataSource = null;
                        cboCodTipoDocumento.Enabled = true;
                        txtNroDocumento.Enabled = true;
                    }
                    else this.Close();
                }
                else
                {
                    MessageBox.Show("No se pudo eliminar el registro", "Error al eliminar registro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
    }
}
